The present invention relates generally to computer-based application multitasking and, more particularly, to methods and systems for addressing application multitasking degradation.
An application program (app) requires one or more application processes or tasks (hereafter referred to as application tasks) to be performed. A user may experience lag or slowdown in one or more applications when multitasking application tasks on a computer device. This may occur when one or more application tasks consume too many shared resources, and application tasks become “starved”, resulting in inefficient execution of the application tasks. The user is often unaware of which background application tasks are impacting this slowdown. Often, simply being aware of what is happening with the processing of applications on a device will alleviate user frustrations, but users typically have little patience when an interface simply presents an icon of a rotating clock to indicate a processing slowdown. Today, the types of multitasking most commonly employed are preemptive and cooperative; but neither of these solves the slowdown problem mentioned above. Additionally, process priorities can be automatically assigned to a foreground application; however, such methodology does not allow for efficient multitasking.
In general, methods exist for adjusting performance of multitasking systems. By way of example, U.S. Pat. No. 8,549,525 is directed to a “METHOD FOR TUNING SERVICE PERFORMANCE OF MULTI-TASK SYSTEM AND MULTI-TASK SYSTEM THEREOF.” The '525 patent addresses the problem of multi-tasking in systems with limited processing power by running a higher priority task for a first duration, and suspending the high priority task to preserve system resources before executing a lower priority task for a second duration. The '525 patent represents a resource allocation solution that is purely based on mathematical algorithms using set application priorities. Such solutions are not responsive to the manner in which a user is interacting with one or more applications on a device, and do not provide dynamic prioritization of applications to provide for an optimal user experience. Moreover, such solutions do not address the visibility of the multitasking applications to a user.
In another example, U.S. Pat. No. 7,536,689 is directed to a “METHOD AND SYSTEM FOR OPTIMIZING THREAD SCHEDULING USING QUALITY OBJECTIVES”. The '689 patent teaches providing “a scheduling algorithm that periodically adjusts scheduling parameters of tasks based on comparison of resource usage against desired resource limitations”. Such solutions are not responsive to the manner in which a user is interacting with one or more applications on a device, and do not provide dynamic prioritization of applications based on the visibility of the applications to a user.